/**
 * 上海中赢金融信息服务有限公司
 * Copyright (c) 2017-2027 Chinazyjr,Inc.All Rights Reserved.
 */
package com.sys.midware.rdb.handler;

import java.util.Collection;
import java.util.List;

import com.sys.midware.rdb.exception.RDBException;
import com.sys.midware.rdb.handler.op.DeleteParams;
import com.sys.midware.rdb.handler.op.InsertParams;
import com.sys.midware.rdb.handler.op.QueryParams;
import com.sys.midware.rdb.handler.op.UpdateParams;

/**
 * 
 * <b>ClassName：</b> DBHandler <br/>
 * <b>Description：</b> MongoDB访问数据库的句柄对象 <br/>
 * <b>@author：</b> mobing <br/>
 * <b>@date：</b> 2016年1月7日 上午10:49:02 <br/>
 * <b>@version: </b> <br/>
 */
public interface IRDBHandlerJDBC {
    /**
     * 执行新增
     * 
     * @param record 待添加的数据记录
     * @throws Exception 若添加失败则抛出异常
     */
    public  void performInsert(InsertParams<?> ip) throws RDBException;
    
    /**
     * 批量新增
     * 
     * @param record 待添加的数据记录
     * @throws Exception 若添加失败则抛出异常
     */
    public  void performInsertBatch(List<InsertParams<?>> records) throws RDBException;
    
    /**
     * 执行更新
     * 
     * @param record 待添加的数据记录
     * @throws Exception 若添加失败则抛出异常
     */
    public void performUpdate(UpdateParams<?, ?> up) throws RDBException;
    /**
     * 批量更新
     * 
     * @param record 待添加的数据记录
     * @throws Exception 若添加失败则抛出异常
     */
    public  void performUpdateBatch(List<UpdateParams<?, ?>> records) throws RDBException;
   
    
    /**
     * 执行删除
     * 
     * @param obj 查询条件参数对象
     * @return 查询结果对象
     * @throws Exception 若查询过程失败则抛出异常
     */
    public void performDelete(DeleteParams<?> record) throws RDBException;
    
    /**
     * 批量删除
     * 
     * @param obj 查询条件参数对象
     * @return 查询结果对象
     * @throws Exception 若查询过程失败则抛出异常
     */
    public void performDeleteBatch(List<DeleteParams<?>> records) throws RDBException;
    
    /**
     * 单个对象查询
     * 
     * @param obj 查询条件参数对象
     * @return 查询结果对象
     * @throws Exception 若查询过程失败则抛出异常
     */
    public Object performQuery(QueryParams<?> qp) throws RDBException;
    
    /**
     * 查询List
     * 
     * @param obj 查询条件参数对象
     * @return 查询结果对象
     * @throws Exception 若查询过程失败则抛出异常
     */
    public <E extends Object> Collection<E> performQuery4List(QueryParams<?> qp) throws RDBException;
    
}
